function makeDate(timestamp: number): Date;
function makeDate(m: number, d: number, y: number): Date;
function makeDate(mOrTimestamp: number, d?: number, y?: number): Date {
  if (d !== undefined && y !== undefined) {
    return new Date(y, mOrTimestamp, d);
  } else {
    return new Date(mOrTimestamp);
  }
}
const d1 = makeDate(1);
const d2 = makeDate(1,2,3);
// 报错 没有需要 2 参数的重载，但存在需要 1 或 3 参数的重载
// const d3 = makeDate(1, 3); 